package com.fsy.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fsy.entities.MenuInfo;
import com.fsy.entities.Modules;
import com.fsy.service.ModulesService;
import com.fsy.mapper.ModulesMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
* @author 凡凡
* @description 针对表【modules】的数据库操作Service实现
* @createDate 2022-04-17 20:38:33
*/
@Service
public class ModulesServiceImpl extends ServiceImpl<ModulesMapper, Modules>
    implements ModulesService{

    @Resource
    private ModulesMapper modulesMapper;

    /**
     * 查询模块
     * @param modules
     * @return
     */
    public List<Modules> selectModules(Modules modules){
        /*int page = modules.getPage();
        int limit = modules.getLimit();
        int offset = (page-1)*limit;
        modules.setPage((page-1)*limit);
        modules.setOffset(offset);//计算偏移量*/
        return modulesMapper.selectModules(modules);
    }

    /**
     * 查询模块条数
     * @param modules
     * @return
     */
    public int selectCounts(Modules modules){
        return modulesMapper.selectCounts(modules);
    }

    /**
     * 查询所有的一级分类
     * @return
     */
    public List<Modules> findOneLevel(){
        return modulesMapper.findOneLevel();
    }
    /**
     * 查询该分类是否有子分类
     * @param id
     * @return
     */
    public int findIshaveson(Integer id){
        return modulesMapper.findIshaveson(id);
    }

    /**
     * 查询该分类是否有产品
     * @param id
     * @return
     */
    public int findIshavemodules(Integer id){
        return modulesMapper.findIshavemodules(id);
    }

    /**
     * {后台}在删除类别前先查找该类型下是否有子类型链接，如有就不让删除
     * @param id
     * @return
     */
    public int IsHaveSon(int id){
        return modulesMapper.IsHaveSon(id);
    }

    /**
     * 查询校验
     */
    public Modules juederModulesNameIsExist(String modulesName){
        return modulesMapper.juederModulesNameIsExist(modulesName);
    }

    /**
     * 根据父id查询模块
     * @param
     * @return
     */
    public List<Modules> selectModulesByparentId(Integer parentId){
        return modulesMapper.selectModulesByparentId(parentId);
    }

    /**
     * 查询子模块
     * @param modules
     * @return
     */
    public List<Modules> selectAllNotBase(Modules modules){
        return modulesMapper.selectAllNotBase(modules);
    }

    @Override
    public List<MenuInfo> initMenu(Integer userId, String type) {
        return modulesMapper.initMenu(userId,type);
    }
}




